Reuse of image processing information

ABSTRACT

A content editor application receives a reference map that indicates which portions of a first image are foreground, and which portions of the first image are background. The content editor compares a coloration of regions in the first image to a coloration of regions in the second image. For regions in the second image that match a coloration of corresponding regions in the first image, or that are within a threshold range of coloration, the content editor uses the reference map to mark regions of the second image that are foreground and to mark which regions of the second image are background. Accordingly, the reference map of the first image can be used to identify whether regions of a second image or subsequent images in a sequence are foreground and which are background.

CROSS-REFERENCES TO RELATED APPLICATIONS

This application is a continuation of U.S. patent application Ser. No.12/191,676, filed Aug. 14, 2008, now, U.S. Pat. No. 8,265,380 entitled“Reuse of Image Processing Information,” the entirety of which is herebyincorporated by reference.

BACKGROUND

Chroma key, or chroma key effect, is a process for mixing two images orframes together, in which a color—or a range of colors—from one imagebecomes transparent for viewing portions of a different background imageinstead of an original background associated with the image.

Mixing such an image having transparent regions with a second imagecreates a composite image. This technique is commonly used to replace afirst background with a second background. For example, one or moreportions of a first image can be overlaid on a second image to make itappear as though a subject of the first image was originally taken withrespect to a background of the second image. In other words, the chromakey effectively keys out or removes all image pixels that are similar toa specified background key color so that the keyed out color, or rangeof colors, becomes transparent for the entire clip.

One common use of the chroma key process is with weather forecasts. Insuch applications, a person presenting a weather forecast on televisionappears to be standing in from of a large weather map. In reality, thatis, in the broadcast studio, the weather presenter is standing in frontof a large blue or green background. When televising the weatherforecast, the blue or green background is keyed out according toconventional techniques and replaced with a weather map or graphicalforecast.

Another common use of the chroma key process is in creating specialeffects in motion pictures. Actors are filmed in front of a greenscreenor bluescreen. (Any color screen can be used, but filmmakers prefergreen and blue since these colors are the colors least like skin tone.)During processing of the video images, the background screen is removed,and then replaced with another background such a computer-generatedlandscape.

Professional, amateur, and hobby filmmakers all can use conventionalchroma key techniques to create special effects in video and other typesof imaging applications.

SUMMARY

Conventional processes of keying out colors, or a range of colors,suffer from a number of deficiencies. For example, a background screensuch as a green screen or a blue screen used for chroma keying may notbe perfectly uniform in color, lumination, etc. That is, the materialused to make a background may not be perfectly smooth, or it may varyfrom matte to glossy. Also, camera and lighting effects can contributeto or exacerbate imperfections in a background material.

When filming, these background imperfections can result in small shadowsor bright spots that do not match a color key, or exceed a color keyrange. For example, amateur or hobby filmmakers commonly use a cloth asa chroma key background. This background cloth might have folds,creases, wrinkles, faded portions, and the like. Thus, the clothmaterial itself may be woven and may not be perfectly smooth.

Use of a low cost or imperfect background such as a cloth materialhaving imperfections as discussed above can result in small shadowsscattered throughout the background area of images. The shadows of thecloth represent so-called artifacts of the background that should beremoved from an image, but which may not be removed by conventionalprocessing techniques because the artifacts are outside a specifiedcolor range associated with the background. If the background artifactsare not identified and removed from an image, the result will be a lowquality overlay of a foreground subject on a new background.

Identifying and removing such shadows or artifacts from backgroundimages is typically a computationally intensive process. Upon keying outa color or color range from a first image, the resulting image yieldsareas that are either identified as foreground, or as potentialforeground areas. Thus, the resulting image will usually contain one ormore areas which a film editor desires to keep (such as actors), andseveral shadows or small artifacts as mentioned above that the filmeditor desires to remove, such as shadows in the background.

These artifacts can number from less than a few when using a good chromakey background to several hundreds or thousands of undesirable artifactswhen using a low quality chroma key background.

To identify so-called artifacts such as, for example, areas of an imagethat appear to be a foreground object but in fact are part of abackground, a processor analyzes the image(s). For example, theprocessor can be configured to calculate an area of each of thepotential foreground areas in an image, and compare each area to athreshold size to identify whether each area under test is an artifact.If the area is smaller than a predetermined threshold, then the area maybe identified as an artifact and marked as background or madetransparent. Calculating and replacing artifacts can be a heavycomputational task that reduces editing efficiency, especially inapplications such as, for example, video processing in which subjectmatter of frames of one video are superimposed on a background frames ofa second video. For example, according to conventional techniques, eachframe in a video sequence must be analyzed to identify so-calledartifacts that are really background but appear to be foreground.

Techniques discussed herein significantly overcome the deficiencies ofconventional image and video editing applications. For example, as willbe discussed further, certain specific embodiments herein are directedto a computer and/or image processing environments that dramaticallyimprove the efficiency of removing undesirable artifacts in a chroma keyimage editing process.

More specifically, according to one embodiment, a content editorreceives a reference map or mask that indicates which portions of afirst image are foreground, and which portions of the first image arebackground. By way of a non-limiting example, such portions of the firstimage that are considered to be background can include pixels, groups ofpixels, areas on an image grid, etc. In one embodiment, the contenteditor compares regions in the first image to regions in a second image.For regions in the second image that match a parameter such as, forexample, coloration of corresponding regions in the first image, or thatare within a threshold range of coloration, the content editor uses thereference map (associated with the first image) to mark which regions ofthe second image that are foreground and to mark which regions of thesecond image are background. Thus, according to embodiments herein, if aregion of the first image is identified as an artifact and is consideredto be background as specified by a corresponding foreground/backgroundreference map, portions of the second image having the same artifacts(because of a matching) can be marked as background as well based on thereference map without having to apply heavy amounts of processing to thesecond image to again identify artifacts as was done for the first imageto produce the reference map.

Accordingly, processing of a first image can be used to create a map ormask that takes into account or identifies artifacts in the first image.The map of artifacts can be applied to one or more other images to findand remove artifacts.

Based on these and other embodiments as further described herein, acontent editor, creating a chroma key effect, can more efficientlyprocess a second or subsequent image. For example, the content editorreuses the computationally intensive process of removing artifacts fromthe first image, for use with the second or subsequent images, to markregions or pixels as background. In other words, the content editorskips an area-based artifact removal computation for subsequentimages—that are similar to the first image—and reuses the reference mapto mark probable artifacts as background in the subsequent images. Thisis especially useful for slower computer processors and/or when thereference map can be used for any number of subsequent frames such as10, 20, 30, or more, subsequent frames or images.

An example advantage of using the reference map for multiple subsequentimages is that the content editor can process video for chroma keyeffects in a fraction of time otherwise necessary. In other words, onebenefit of the invention is more optimized video processing because thereference map, which indicates where imperfections were found in a firstimage, is reused to identify imperfections in the second image andpossibly other images. This means that heavy processing need not beemployed to identify and then remove artifacts in the second image. Forexample, in many cases, the artifacts found in a first image of a videosequence are similar to the artifacts present in one or more subsequentimages of the video sequence because the sequence of images often doesnot change quickly over time. Thus, artifacts in one image are the sameas artifacts in a subsequent image. Creation and use of the map thusreduces an amount of time required to find unwanted artifacts thatappear to be foreground but are actually background.

Also by way of a non-limiting example, note that the colorationcomparison as discussed above can include a comparison of any of one ormore properties such as numerical color identifier values, luminancelevel values, a level of saturation, etc. to make a determinationwhether the regions in a first image match regions in a second image.

In one embodiment, a content editor receives a reference map, or mask,indicating which portions of the first image are foreground and whichportions of the first image are background. In this reference mask, anybackground artifacts from the first image (such as shadows) have alreadybeen removed or marked as background. The content editor compares acoloration of regions in the first image to a coloration of regions inthe second image by detecting whether a region of the first image iswithin a threshold range of coloration with respect to a correspondingsame region in the second image. For example, the content editorcompares corresponding pixels of a first and second image to identifywhether the pixels have a same or similar coloration within acorresponding threshold value.

In one embodiment, the threshold range of coloration can beuser-configured such that a user or other source can specify limits asto whether portions of the second image match. Setting a largerthreshold may result in improved efficiency, while setting a smallerthreshold may result in improved quality.

When performing the comparison as discussed above, according to anexample embodiment, the content editor can be configured to identifyregions in the second image that match, within a threshold range, thecoloration of corresponding regions in the first image. For suchmatching regions, the content editor uses the reference map to markregions of the second image as foreground or background. Thus, portionsof the first image identified as artifacts can be identified asartifacts in the second image.

In one embodiment, the content editor can generate a mask orforeground/background map associated with the second image. In such anembodiment, the mask indicates which regions of the second image areforeground and which regions are background. Just as the reference mapindicates which portions of the first image are foreground andbackground, the mask associated with the second image indicates whichportion of the second image are foreground and background.

The content editor also can identify regions in the second image havinga coloration difference from corresponding regions in the first image,or a coloration difference that exceeds a predetermined threshold. Forsuch regions with a coloration difference, the content editor canidentify whether those regions have a respective coloration within abackground coloration range associated with the second image. When thenon-matching regions have a respective coloration within the backgroundcoloration range, the content editor marks such regions in the secondimage as background. When the non-matching regions do not have arespective coloration within the background coloration range, thecontent editor marks such regions as foreground.

In accordance with another embodiment, the content editor analyzesattributes of a first image to create a first mask that indicates whichregions of the first image represent foreground and which regions of thefirst image represent background. The first mask can serve as areference map as discussed above. The first mask also can serve as atemplate indicating which portions of the first image are foreground andwhich are background. As mentioned above, the first mask can be createdto identify artifacts that appear to be foreground but which are morelikely background. Based on an analysis of the second image using thefirst mask or so-called reference map, the content editor creates asecond mask indicating which regions of the second image are foregroundand which regions of the second image represent background.

In this analysis, the content editor may initially derive parameterinformation for each of the first image and second image and compare theinformation to conditionally perform operations of creating the secondmask based on use of the first mask or, as an alternative, derive thesecond mask based on a more burdensome process of identifying whichregions of the second image are foreground. Such parameter informationcan include luminance, color saturation level, brightness, contrast,prominent background color, etc. derived from analyzing each of theimages as a whole. For example, as further discussed below, the contenteditor generates parameter information for each of the first image andone or more other images including the second image. Using thresholdvalue information, the content editor determines whether the first imagehas attributes or color parameters similar to the second image. In oneembodiment, if color parameters between the first and second images aresufficiently different, then artifact/aberration removal analysis fromthe first image will not be used for the second image. In other words,if the difference in color parameters, between the two images, is aboveor greater than a predetermined threshold level, it is likely that theartifacts found in the first image will not be the same as the artifactsin the second image. In such an instance, the mask or reference mapassociated with the first image is therefore not used to create a maskidentifying artifacts in the second image. Otherwise, there could be aloss of quality by reusing a reference mask calculated from frame oneand applying it to a subsequent frame.

If the images have similar characteristics indicating that the imagesare very similar, the content editor initiates the process as discussedabove. For example, for frame one, the content editor generates areference map that indicates which regions of the first image are not ofa background color but which are aberrations to be marked as backgroundin the first image. When color parameters between the first and secondimages are within the threshold amount, then the content editor usesthis generated reference map to create a second mask indicating whichregions of the second image are foreground in which regions of thesecond image represent background.

In addition to the example method, system, etc. embodiments as discussedabove, other embodiments herein can include a configuration of one ormore computerized devices, websites, servers, hosted services,workstations, handheld or laptop computers, or the like to carry outand/or support any or all of the method operations disclosed herein. Inother words, one or more computerized devices or processors can beprogrammed and/or configured to include a content editor and/or relatedfunctions as explained herein to carry out different embodiments asdescribed herein.

Yet other embodiments herein include software programs to perform thesteps and operations summarized above and disclosed in detail below. Onesuch embodiment comprises a computer program product that has acomputer-readable medium (e.g., a tangible computer readable media,disparately located or commonly located storage media, computer storagemedia or medium, etc.) including computer program logic encoded thereonthat, when performed in a computerized device having a processor andcorresponding memory, programs the processor to perform the operationsdisclosed herein. Such arrangements are typically provided as software,code and/or other data (e.g., data structures) arranged or encoded on acomputer readable medium such as an optical medium (e.g., CD-ROM),floppy or hard disk or other a medium such as firmware or microcode inone or more ROM or RAM or PROM chips or as an Application SpecificIntegrated Circuit (ASIC). The software or firmware or other suchconfigurations can be installed onto a computerized device to cause thecomputerized device to perform the techniques explained herein.

Accordingly, one particular embodiment of the present disclosure isdirected to a computer program product that includes one or morecomputer readable media having instructions stored thereon forsupporting operations such as analysis and processing of images for achroma key effect. The instructions, and method as described herein,when carried out by a processor of a respective computer device, causethe processor to: (1) receive a reference map or mask indicating whichportions of a first image are foreground and which portions of the firstimage are background; (2) compare a coloration of regions in the firstimage to a coloration of regions in a second image; and (3) for regionsin the second image matching, within a threshold range, a coloration ofcorresponding regions in the first image, use the reference map to markor identify which regions of the second image are foreground and to markor identify which regions of the second image are background. Asmentioned above, reuse of the reference map or mask associated with thefirst image when processing the second image reduces the amount of timerequired to carry out image processing in applications such as, forexample, chroma key applications.

Another particular embodiment of the present disclosure is directed to acomputer program product that includes a computer readable medium havinginstructions stored thereon for supporting operations such as processingof video content. Such instructions, and thus method as describedherein, when carried out by a processor of a respective computer device,cause the processor to: (1) analyze attributes of a first image; (2)based on such analysis, create a first mask indicating which regions ofthe first image represent foreground and which regions of the firstimage represent background; and (3) based on an analysis of the firstmask with respect to a second image, create a second mask indicatingwhich regions of the second image are foreground and which regions ofthe second image represent background.

Other embodiments of the present disclosure include software programs toperform any of the method embodiment steps and operations summarizedabove and disclosed in detail below.

Of course, the order of discussion of the above steps has been presentedfor clarity sake. In general, these steps may not need to be performedin any particular order.

Also, it is to be understood that each of the systems, methods, andapparatuses herein can be embodied strictly as a software program, as ahybrid of software and hardware, or as hardware alone such as within aprocessor, or within an operating system or within a softwareapplication, or via a non-software application such a person performingall or part of the operations. Example embodiments as described hereinmay be implemented in products and/or software applications such asthose manufactured by Adobe Systems Incorporated of San Jose, Calif.,USA.

As discussed above, techniques herein are well suited for use insoftware applications supporting image and video processing and editing.However, it should be noted that embodiments herein are not limited touse in such applications and that the techniques discussed herein arewell suited for other applications as well.

Additionally, although each of the different features, techniques,configurations, etc. herein may be discussed in different places of thisdisclosure, it is intended that each of the concepts can be executedindependently of each other or in combination with each other.Accordingly, the present invention can be embodied and viewed in manydifferent ways.

Note that this summary section herein does not specify every embodimentand/or incrementally novel aspect of the present disclosure or claimedinvention. Instead, this summary only provides a preliminary discussionof different embodiments and corresponding points of novelty overconventional techniques. For additional details and/or possibleperspectives of the invention and embodiments, the reader is directed tothe Detailed Description section and corresponding figures of thepresent disclosure as further discussed below.

BRIEF DESCRIPTION OF THE DRAWINGS

The foregoing and other objects, features, and advantages of theinvention will be apparent from the following more particulardescription of preferred embodiments herein as illustrated in theaccompanying drawings in which like reference characters refer to thesame parts throughout the different views. The drawings are notnecessarily to scale, with emphasis instead being placed uponillustrating the embodiments, principles and concepts.

FIG. 1 is an example diagram of a content editor for processing ofimages in a computer/network environment according to embodimentsherein.

FIG. 2 is an example diagram of a content editor processing a sequenceof images according to embodiments herein.

FIG. 3 is a flow chart illustrating example decision logic in editingimage content according to embodiments herein.

FIG. 4 is an example block diagram of a computer system configured witha processor and related storage to execute different methods accordingto embodiments herein.

FIG. 5 is a flowchart illustrating an example of a method supportingimage processing according to embodiments herein.

FIGS. 6 and 7 combine to form a flowchart illustrating an example of amethod of image processing according to embodiments herein.

FIG. 8 is a flowchart illustrating an example of a method supportingimage processing according to embodiments herein.

FIG. 9 is a flowchart illustrating an example of a method supportingimage processing according to embodiments herein.

DETAILED DESCRIPTION

According to one embodiment, a content editor receives a reference mapthat indicates which portions of a first image are foreground, and whichportions of the first image are background. By way of a non-limitingexample, such portions can include pixels, groups of pixels, areas on animage grid, etc. The content editor compares a coloration of regions inthe first image to a coloration of regions in the second image. Forregions in the second image that match a coloration of correspondingregions in the first image, or that are within a threshold range ofcoloration, the content editor uses the reference map to mark regions ofthe second image that are foreground and to mark which regions of thesecond image are background. Accordingly, the reference map or maskassociated with the first image can be used to identify which regions ofone or more subsequent images are foreground and which are background.

Now, more specifically, FIG. 1 is an example diagram illustrating acontent editor 140 configured to process images according to embodimentsherein. Image 141 is a first image to be processed. Image 142 is asecond image to be processed. Within example image 141 there isbackground 143-1. Background 143-1 is a shaded area that represents abackground generally composed of a single color. In other words,background 143-1 represents a green screen or blue screen used in chromakey image capture or filming.

In reality, background 143-1 may not be composed of a single colorbecause of imperfections in the background material used as a backdropwhen capturing the image 141. For example, the background 143-1associated with image 141 can vary depending on lighting variations,color variations, limitations in image capturing equipment, shadows onthe material background, etc.

As mentioned above, the background 143-1 can include artifacts that arereally part of the background but which appear to be foreground becausethey are outside of a background color range.

These imperfections result is shadows within the background 143-1.Shadows and aberrations in the background material or surface areespecially common when filming with low-quality background materials.For example, a hobbyist movie maker may hang a cloth or colored bedsheet as a background. Such cloth material might be folded or crumpledresulting in a non-uniform surface. These small imperfections willresult in small shadows or bright spots in the background material whenfilming.

Image 141 shows several shadows 144-1 (artifacts) scattered throughoutbackground 143. Shadows 144 are not intended to be displayed to scale.Also note that there could be many more shadows with a given backgroundthat are very small with respect to foreground areas.

Foreground area 145-1 of image 141 depicts a person holding a stick.

Image 142 may be nearly identical to image 142 because the two imagescan be taken at approximately the same time such as, for example, oneafter the other. In one embodiment, image 141 and image 142 are framesof a video

Moving from image 141 to 142, the shadows remain (or generally remain)in the same location, while the person in the foreground moves the endof the stick slightly down. For example, the unwanted artifacts such asshadows 144-1 of image 141 appear generally in the same correspondingareas as the shadows 144-2 in image 142.

Additionally, shadows are simply used as an example. In general, theshadows 144 can be any type of aberration in the background.

When using a green background, a video camera typically will captureshadows as blackish green, or black. Both of these colors are mostlikely outside a (background) color key range used to positivelyidentify whether a corresponding pixel of a respective image isbackground or not. Because the shadows 144-1 or artifacts are outside ofa background color range, the content editor 140 must perform furtherprocessing to determine whether the artifacts are background orforeground.

Note that a background in a respective image may also have extremelybright portions, which a video camera captures as whitish green, orwhite. Both of these colors are also most likely outside the color keyrange such that content editor 140 may not be able to accurately markthese as background.

According to one embodiment, the content editor 140 produces aprovisional map 146 indicating which regions of the image 141 areforeground and which are background. For example, the provisional map146 can be generated by analyzing each element or pixel in image 141 toidentify whether it falls within a background color range or not. If arespective element of image 141 falls within a background color range,the element is marked as being background. If the respective element ofimage 141 is outside of the background color range, the respectiveelement is provisionally marked as being foreground.

In this initial chroma keying process, content editor 140 eithergenerates this provisional map 146, or receives this provisional imagemap from a separate content editor 140. In the embodiment of generatingprovisional map 146, content editor 140 identifies probable foregroundand background regions based on a color or color range. In other words,content editor 140 keys image 141 to an identified color or color rangeof background 143 to identify and mark regions or pixels within image146 as either foreground or background. As mentioned above, this is aprovisional step because there will be areas identified as foregroundwhich, in reality, should be marked as background or transparent.

Provisional map 146 shows background 143 marked as background, which isrepresented by shading. Provisional map 146 also shows provisionallymarked foreground areas, which include both shadows 144 and foregroundarea 145.

Provisional map 146 depicts the provisionally marked foreground areas aswhite circles with a dotted line. Artifacts in provisional map 146 areshadows identified as foreground. In one embodiment, the content editor140 initiates further processing to remove unwanted artifacts from image141. In other words, the content editor 140 performs further processingon provisional map 146 to identify portions of the image 141 that areactually background even though they were provisionally labeled asforeground in provisional map 146. Otherwise, if provisional map 146were used as a mask, the undesirable shadows and/or artifacts in image141 will be transferred or mixed in with a second background.

To generate reference map 147, which is a more accurate mask indicatingwhich portions of image 141 are foreground voltage background, contenteditor 140 identifies boundaries of foreground regions in provisionalmap 146. Next, content editor 140 calculates an area for each regionidentified as foreground. Calculating an area size for each potentialforeground region in provisional reference map 146, enables contenteditor 140 to identify artifacts. For example, if the size of each areasuch as, for example, a contiguous grouping of pixels is smaller than apredetermined threshold, then content editor 140 can mark such regionsin reference map 147 as being background.

In one embodiment, the threshold area can be defined as a percentage ofthe overall image size, and may be very small compared to the overallimage size, such as less than 1% of the overall image size. It is likelythat such small portions of the image are artifacts in the image 141 asopposed to an area of interest to be superimposed on a new backgroundduring the chroma key process.

When performing the analysis of foreground regions in provisional map146, the content editor 140 may identify contiguous groupings of pixelsthat are larger than a threshold value. In such an instance, the contenteditor 140 can perform additional analyses to identify whether theprovisionally labeled foreground is either foreground or background. Forexample, the content editor 140 can check whether a grouping of pixelsunder test is very near in color to the background color range for theimage. If the area under test is near the background color range, thecontent editor 140 can conclude that the area under test is an artifactthat is really background rather than foreground. Such areas (groupingsof pixels in the image 141 generally close to but outside the backgroundcolor range) can then be marked as being background in reference map147.

Certain parts of image 141 will not be identified as artifacts andtherefore will be marked as foreground. For example, the foreground area145 is larger than a threshold value and may include colors quitedifferent than the background color range for the image 141. Thus,content editor 140 would not mark these areas as being background inreference map 147.

The artifact removal process as discussed above results in reference map147. Reference map 147 properly identifies foreground object 145 asbeing foreground and shadows 144-1 as being background. Calculatingreference map 147 completes processing for image 141.

Content editor 140 can perform a pre-processing check to determinewhether image 141 and image 142 are similar to each other. If so, thereference map 147 derived for image 141 can be used to generatereference map 149.

In general reference map 149 is a mask indicating which portions ofimage 142 are foreground and which portions are background. As discussedherein, using the reference map 147 at least in part to generatereference map 149 reduces processing time because alternativelygenerating the reference map 149 in a similar manner as generatingreference map 147 can be quite tedious.

More specifically, according to one embodiment, processing for image 142begins by comparing color parameters of image 141 with color parametersof image 142. Color parameters can include a color histogram, averageluminance of an overall image, average saturation color of the completeimage, etc. for each of the images. Each of these parameters can bederived by the content editor 140 based on an analysis of the images.

As mentioned above, the color comparison performed by content editor 140can include verifying that image 141 and image 142 are sufficientlysimilar such that the reference map 147 can be used with image 142 toproduce reference map 149. If content editor 140 determines that thecolor difference between image 141 and image 142 is not similar, thencontent editor 140 will need to separately calculate a reference map forimage 142 just as the content editor 140 generated the reference map 147for image 141 as discussed above.

Content editor 140 can use thresholds, or color parameter thresholds, todetermine a degree of similarity between image 141 and image 142. Forexample, if a difference between a color histogram from image 141 and acolor histogram from image 142 is greater than a predetermined thresholdvalue amount, then content editor 140 identifies the two images as notsufficiently similar. Alternatively, in determining image similarity,content editor 140 can be configured to only consider saturation orluminance levels within a background color range. In other words, colorscontaining skin tone levels, or similar saturation levels, can beomitted from the analysis of whether the images are sufficiently similarto each other.

When the color comparison verifies that image 141 and image 142 aresufficiently similar, the content editor 140 uses reference map 147 (aswell as further processing) to generate reference map 149.

In one embodiment, regions or pixels identified as artifacts and markedas background and reference map 147 are used to mark regions or pixelsof reference map 149 as background. For example, content editor 140compares each pixel within image 142 to a pixel at a same respectivelocation in image 141 to calculate a coloration difference. The processimplemented by the content editor 140 can include comparing the firstpixel in image 141 to the first pixel in image 142, comparing the secondpixel of image 141 to the second pixel in image 142, and so on.

For each pixel under test, if there is no coloration difference betweena pixel in image 141 and a respective pixel in image 142, or if thedifference in coloration is below a predetermined threshold, thencontent editor 140 marks such pixels of reference map 149 identical to aforeground or background marking of reference map 147.

Between image 141 and image 142 there most likely will be some pixelshaving a color difference between the two images as a result of anobject of interest moving in the images. For such pixels having acoloration difference between images, content editor 140 executes acolor keying process similar to that which generated provisional imagemap 146. That is, content editor 140 compares pixels having a colorationdifference against a background color or color range, and then markspixels accordingly. Thus, content editor 140 skips or omits the tediousprocess step (as discussed above) of calculating areas of foregroundobjects to remove artifacts for image 142. Skipping this step is veryuseful to avoid heavy computational processing that is time-consuming.

Assuming that a position of the example person holding the stick inimage 141 is in a nearly a same position as in image 142, pixels havinga coloration difference will most likely be within or around a region offoreground area 145. For example, it is possible that between one frameand a subsequent frame or image, foreground area 145 representing acorresponding object in the image may move relative to background 143such that a portion of background 143 that was previously covered byforeground area 145 is now revealed. It is also possible that within thenewly revealed background region there are shadows or other artifacts.Such newly appearing shadows or artifacts may not be discovered asartifacts and properly marked as background in second or subsequentimage processing. There may be a small quality loss associated withomitting area-based artifact computation for every frame, but thetrade-off is a dramatic increase in video editing efficiency. In otherwords, as discussed above, using the reference map 147 at least in partto generate reference map 149 reduces processing time becausealternatively generating the reference map 149 in a similar manner asgenerating reference map 147 can be quite tedious.

FIG. 2 illustrates how content editor 140 processes a sequence of imagesaccording to embodiments herein. In general, FIG. 2 illustrates how areference map 147 generated from a single image such as, for example,image 141 can be used to produce reference maps such as reference map149, reference map 241, etc. for each of multiple subsequent images. Ina similar manner as discussed above, if image 143 is similar to image141, then content editor 140 performs a similar process as discussedabove to generate reference map 241 indicating foreground and backgroundmatter associated with image 143.

Now, more specifically, the sequence of images 170 can include frames ofrecorded video. Each image such as image 141, 142, 143, . . . , 149 inthe sequence of images 170 can represent a frame of video.

As shown, sequence of images 170 can be separated into two sequences, afirst sequence 171, and a second sequence 172. Each of sequences 171,and 172 can have two or more frames or images. Also note that there canbe hundreds of frames in any given sequence, but preferably eachsequence group is limited to a manageable such as, for example, a fewdozen images.

Row 175 displays provisional reference maps calculated from a firstimage in each sequence of images. As discussed above, to generate aprovisional mapping of foreground and background in a respective image,content editor 140 generates such provisional reference paths bycomparing each region or pixel in frame 141 with a background color, orcolor range, and marks regions as either foreground or background.

Next, in a manner as previously discussed, content editor 140 calculatessizes of foreground areas to identify artifacts in the background screento mark as background and reference map 147.

Prior to generating a corresponding reference map for subsequent image143 and other images in the sequence, the content editor 140 performs ananalysis as discussed above to verify that image 143 is similar to image141. Each of images 142, 143, . . . , 149 are compared with image 141 toverify the color parameters are sufficiently similar.

If a subsequent image is sufficiently similar based on the comparisontest, content editor 140 applies reference map 147 to each of images142, 143, . . . , 149 to generate a corresponding reference mask foreach subsequent image. Thus, the analysis of identifying artifacts for afirst image or reference image such as, for example, image 141 need notbe repeated for each subsequent image in the sequence.

Sequence 172 illustrates how content editor 140 can use this process. Inother words, content editor 140 passes on or reuses a reference map fora given image in the sequence of images 170 to improve efficiency byreducing processor load.

When processing a sequence of many frames or images, content editor 140does not continuously skipping a process of recalculating a referenceimage. For example, the artifact information captured in reference map147 will eventually become stale because the foreground image willchange over time. To accommodate for such a condition, the tediousprocess of identifying artifacts can be repeated every Nth frame. Inother words, the image at a beginning of a sequence can be used togenerate a respective reference map, which is then applied to otherimages in the sequence to determine which portions of the subsequentimages in a sequence are artifacts.

Thus, in addition to the color parameter comparison to verify that twoimages are sufficiently similar to omit calculating a reference map,content editor 140 also considers a predetermined threshold, equal to anumber of subsequent frames, beyond which content editor 140 willrecalculate a reference map despite having each of subsequent imageswith a coloration parameter range. By way of a non-limiting example, thecontent editor 140 can be configured to recalculate a reference imagemap every so often such as, for example, every 30th frame.

Also, note that if the content editor 140 detects a substantial changefrom a reference image and a subsequent image in a sequence, the contenteditor 140 can initiate application of the more tedious process ofidentifying artifacts as is done for each first image in a sequence. Forexample, the image in a sequence can change substantially such thatcontent editor 140 initiates generation of a provisional reference mapand refined reference map before the 30th frame.

As previously discussed, chroma keying is a process for mixing twoimages or frames together, in which a color—or a range of colors—fromone image becomes transparent for viewing portions of a differentbackground image instead of an original background associated with theimage.

Embodiments herein enable mixing foreground image portions derived fromsequence of images 170 onto a new background such as a background otherthan the original background associated with images 141, 142, etc. insequence of images 170.

For example, according to embodiments herein, the content editorapplication 140 can be configured to: overlay foreground regions (asidentified by mask 149) of the image 142 onto a background differentthan the original background region associated with image 142; overlayforeground regions (as identified by mask 241) of the image 142 onto abackground different than the original background region associated withimage 143; overlay foreground regions (as identified by mask 245) of theimage 148 onto a background different than the original backgroundregion associated with image 148.

Each of the foreground image portions in sequence of images 170 can beoverlaid on a static image or an image background that changes overtime.

Thus, based on the techniques as described herein, the foreground imageportions in sequence 170 can be overlaid onto a second image to make itappear as though foreground matter in sequence 170 was originally takenwith respect to a background of another static image, sequence of movingimages, etc. In other words, the process of chroma keying as describedherein can include keying out or removing all image pixels that arespecified as background so that the keyed out color, or range of colors,in the foreground becomes transparent for viewing a respective newbackground.

FIG. 3 is a flow chart illustrating example decision logic for executionby content editor 140 according to embodiments herein. In general, theflowchart recites a process of utilizing a reference map generated for afirst image to remove artifacts found in a second image.

In step 150, content editor 140 compares color parameters of a first andsecond frame. Such color parameters can include a color histogram ofeach frame. Other parameters for comparison can include averageluminance and average saturation level of each frame, or any other colormetrics. As discussed above, content editor 140 can analyze any colorparameter, or any combination of color parameters, between frames.Content editor 140 determines whether a difference between colorparameters of the first and second frame is within a predeterminedthreshold amount (step 152). Setting a higher threshold yields betterimage processing efficiency and a small decrease or loss of quality.Such a loss of quality is generally imperceptible to viewers. Thedecision process of steps 150 and 152 is a type of pre-processing check.

If the color parameter difference exceeds a threshold, then contenteditor 140 recalculates a reference map for a second or subsequent frameto identify artifacts in area-based analysis of foreground objects (step153). As previously discussed, this can be a tedious task requiringsubstantial processing resources. A color parameter difference thatexceeds a threshold could indicate a drastic change between images,which would result in a loss of quality.

When a color parameter difference of images is within a threshold,content editor 140 continues image processing by comparing each pixel ofthe second or subsequent frame to a corresponding pixel of the firstframe (step 154). For each pixel under test in the second frame, contenteditor 140 identifies whether a coloration is the same as acorresponding pixel in the first frame (step 156). In other words, thisstep can include a pixel-by-pixel analysis to identify color differencesbetween corresponding pixels. A content editor that follows a Red GreenBlue (RGB) color model has numerical color identifiers for each pixelavailable to quickly identify differences.

For pixels with a matching coloration, which can include cases where acoloration difference between pixels is below a threshold, contenteditor 140 continues to step 158 and uses a reference map from the firstframe to identify whether such pixels have a corresponding pixel inframe one marked as background or foreground. Content editor 140 assignseach such pixel the same background or foreground mark as that in thereference map from the first frame (step 160) to generate a mask image166. Such a mask image is used as a reference to identify which pixelsin each frame should be transparent when mixed with a separatebackground or foreground image to produce a chroma key effect.

For pixels with a coloration difference, content editor 140 continueswith a background color comparison process to step 157. In step 157,content editor 140 determines whether each pixel under test has acoloration within a background color range. The background color, orcolor range, can be specified identified by a user. For example, a useridentifies a background area or background color that the user desiresto remove. Alternatively, content editor 140 automatically determinesthe background color. In the latter case in which the content editor 140implements automatic detection, content editor 140 identifies the mostcommon or prominent color within an image and identifies this color asbackground.

For such pixels within the background color range for the image, contenteditor 140 marks these pixels as background (step 162). For such pixelsthat exceed a background coloration range, content editor 140 marksthese pixels as foreground (step 164). Content editor 140 combines thisforeground and background analysis, with a reference map-based pixelassignments from step 160, to generate mask image 166.

This process is repeated for each pixel to produce theforeground/background mappings.

FIG. 4 is a block diagram of an example architecture of a respectivecomputer system 110 such as one or more computers, processes, etc., forimplementing a content editor 140 according to embodiments herein.Computer system 110 can include computerized devices such as personalcomputers, servers that make up a website, workstations, portablecomputing devices, consoles, network terminals, networks, processingdevices, etc.

In FIG. 4, computer system 110 is shown connected to display monitor 130for displaying a graphical user interface 133 for a user 106 to selectimage parameters and thresholds, using input device 116, and to viewedited image content. Repository 181 can optionally be used for storingunprocessed images, processed images, color parameters, and the like.

Note that the following discussion provides a basic embodimentindicating how to carry out functionality associated with the contenteditor 140 as discussed above and below. However, it should be notedthat the actual configuration for carrying out the content editor 140can vary depending on a respective application. For example, aspreviously discussed, computer system 110 can include one or multiplecomputers that carry out the processing as described herein.

As shown, computer system 110 of the present example includes aninterconnect 111 that couples a memory system 112, a processor 113, I/Ointerface 114, and a communications interface 115.

I/O interface 114 provides connectivity to peripheral devices such aspointing device 116 and other devices (if such devices are present) suchas a keyboard, a selection tool to move a cursor, display screen, etc.

Communications interface 115 enables the content editor 140 of computersystem 110 to communicate over a network and, if necessary, retrieve anydata required to create views, process image data, communicate with auser, etc. according to embodiments herein.

As shown, memory system 112 is encoded with content editor application140-1 that supports functionality as discussed above and as discussedfurther below. Content editor application 140-1 (and/or other resourcesas described herein) can be embodied as software code such as dataand/or logic instructions that supports processing functionalityaccording to different embodiments described herein.

During operation of one embodiment, processor 113 accesses memory system112 via the use of interconnect 111 in order to launch, run, execute,interpret or otherwise perform the logic instructions of the contenteditor application 140-1. Execution of the content editor application140-1 produces processing functionality in content editor process 140-2.In other words, the content editor process 140-2 represents one or moreportions of the content editor 140 performing within or upon theprocessor 113 in the computer system 110.

It should be noted that, in addition to the content editor process 140-2that carries out method operations as discussed herein, otherembodiments herein include the content editor application 140-1 itself(i.e., the un-executed or non-performing logic instructions and/ordata). The content editor application 140-1 may be stored on a tangiblecomputer readable medium or any other computer readable media such asfloppy disk, hard disk, optical medium, etc. According to otherembodiments, the content editor application 140-1 can also be stored ina memory type system such as in firmware, read only memory (ROM), or, asin this example, as executable code within the memory system 1012.

In addition to these embodiments, it should also be noted that otherembodiments herein include the execution of the content editorapplication 140-1 in processor 113 as the content editor process 140-2.Thus, those skilled in the art will understand that the computer system110 can include other processes and/or software and hardware components,such as an operating system that controls allocation and use of hardwareresources.

Functionality supported by computer system 110 and, more particularly,functionality associated with content editor 140 will now be discussedvia flowcharts in FIGS. 5 through 9. For purposes of the followingdiscussion, the content editor 140 or other appropriate entity performssteps in the flowcharts.

More particularly, FIG. 5 is an example flowchart 500 illustratingoperations associated with content editor according to embodimentsherein. Note that flowchart 500 of FIG. 5 and corresponding text belowmay overlap with, refer to, and expand on some of the matter previouslydiscussed with respect to FIGS. 1-4. Also, note that the steps in thebelow flowcharts need not always be executed in the order shown.

In step 510, the content editor 140 receives a reference map 147indicating which portions of a first image 141 are foreground and whichportions of the first image 141 are background.

In step 520, the content editor 140 compares a coloration of regions inthe first image 141 to a coloration of regions in a second image 142.

In step 530, for regions in the second image matching, within athreshold range, a coloration of corresponding regions in the firstimage 141, the content editor 140 uses the reference map 147 to markwhich regions of the second image 142 are foreground and to mark whichregions of the second image are background.

FIG. 6 is an example flowchart 600 that expands on flowchart 500 byillustrating operations associated with a content editor according toembodiments herein.

In step 510, the content editor 140 receives a reference map (mask)indicating which portions of a first image are foreground and whichportions of the first image are background. Such a reference map canindicate which portions of a first image are foreground and whichportions of the first image are background is responsive to comparingcolor parameters derived from the first image with color parametersderived from the second image and having a color parameter differencebelow a predefined threshold. Upon comparing color parameters derivedfrom the first image with color parameters derived from the second imageand having a color parameter difference above a predefined threshold,content editor 140 receives a reference map indicating which portions ofthe second image are foreground and which portions of the second imageare background.

An alternative to content editor 140 receiving a pre-calculatedreference map, is that content editor 140 calculates or generates thereference map from the first image. Content editor 140 analyzes thefirst image to identify regions as foreground and background dependingon whether regions in the first image fall within a background colorrange, and calculates an area for each region marked as foreground.Content editor 140 removes artifacts from the first image by markingforeground regions as background for each region marked as foregroundand having an area smaller than a predetermined threshold size.

In step 520, the content editor 140 compares a coloration of regions inthe first image to a coloration of regions in a second image.

In step 522, the content editor 140 detects whether a region of thefirst image is within the threshold range in coloration with respect toa corresponding same region in the second image. Similarly, contenteditor 140 can compare the coloration of regions in the first image to acoloration of regions in a second image to detect that the first imageis substantially similar to the second image.

In step 530, for regions in the second image matching, within athreshold range, a coloration of corresponding regions in the firstimage, the content editor 140 uses the reference map to mark whichregions of the second image are foreground and to mark which regions ofthe second image are background. Alternatively, content editor 140 usesthe reference map generated from the first image to remove artifacts inthe second image.

In step 532, the content editor 140 generates a mask associated with thesecond image, the mask indicating which regions of the second image areforeground.

In step 534, responsive to detecting that the region of the first imageis marked as being background, the content editor 140 marks thecorresponding region of the second image as being background.

In step 536, responsive to detecting that the region of the first imageis marked as being foreground, the content editor 140 marks thecorresponding region of the second image as being foreground.Additionally, content editor 140 can apply the reference map to each ofmultiple images in a sequence of images to mark which regions of eachsubsequent image in the sequence are foreground and to mark whichregions are background, the sequence of images including the secondimage as well as other images.

In step 540, for regions in the second image having a colorationdifference from corresponding regions in the first image that exceeds acoloration threshold, content editor 140 identifies whether thosenon-matching regions have a respective coloration within a backgroundcoloration range associated with the second image.

In step 542, responsive to detecting that the non-matching regions havea respective coloration within the background coloration range, thecontent editor 140 marks the non-matching regions in the second image asbeing background.

In step 544, responsive to detecting that the non-matching regions donot have a respective coloration within the background coloration range,the content editor 140 marks the non-matching regions as beingforeground. Content editor 140 and then use a mask to identify portionsof the second image to overlay on another image, such as a desiredbackground scene.

FIG. 8 is an example flowchart 800 illustrating operations associatedwith a content editor according to embodiments herein.

In step 830, the content editor 140 analyzes attributes of a firstimage.

In step 840, the content editor 140 creates a first mask indicatingwhich regions of the first image represent foreground and which regionsof the first image represent background.

In step 850, based on an analysis of the first mask with respect to asecond image, the content editor 140 creates a second mask indicatingwhich regions of the second image are foreground and which regions ofthe second image represent background.

FIG. 9 is an example flowchart 900 that expands on flowchart 800 byillustrating operations associated with a content editor according toembodiments herein.

In step 810, the content editor 140 derives parameter information(luminance, color saturation level, background, etc.) Based onprocessing of a first image.

In step 820, the content editor 140 derives parameter information(luminance, color saturation level, background, etc.) Based onprocessing of a second image.

In step 831, using threshold value information, content editor 140determines whether the first image has attributes similar to the secondimage.

In step 832, the content editor 140 compares the parameter informationassociated with the first image to the parameter information associatedwith the second image.

In step 834, the content editor 140 identifies whether the parameterinformation associated with the first image are within a thresholddifference.

In step 840, the content editor 140 creates a first mask indicatingwhich regions of the first image represent foreground and which regionsof the first image represent background.

In step 842, the content editor 140 generates a reference map indicatingwhich regions of the first image are not of a background color but whichare aberrations to be marked as background in the first image.Alternatively, in creating the first mask, for a first set of regions ofthe first image that fall within a background color range, the contenteditor 140 marks the first set of regions in the mask as being part ofthe background of the first image. Also, in creating the first mask, fora second set of regions of the first image that include a contiguousgrouping of pixels that fall outside the background color range and forman area smaller than a threshold value, content editor 140 marks thesecond set of regions in the first mask as being part of the backgroundof the first image.

In step 851, in response to detecting that the first image hasattributes similar to the second image and based on applying the firstmask to the second image, content editor 140 creates a second maskindicating which regions of the second image are foreground and whichregions of the second image represent background.

In step 852, content editor 140 uses the first mask to identify apresence of aberrations or artifacts in the second image that correspondto aberrations artifacts in the first image.

Those skilled in the art will understand that there can be manyvariations made to the operations of the user interface explained abovewhile still achieving the same objectives of the invention. Suchvariations are intended to be covered by the scope of this invention. Assuch, the foregoing description of embodiments of the invention are notintended to be limiting. Rather, any limitations to embodiments of theinvention are presented in the following claims.

What is claimed is:
 1. A method comprising: analyzing attributes of afirst image; based on the analyzing, creating a first mask indicatingwhich regions of the first image represent foreground and which regionsof the first image represent background; and based on an analysis of thefirst mask with respect to a second image, creating a second maskindicating which regions of the second image represent foreground andwhich regions of the second image represent background; and whereincreating the first mask includes indicating which regions of the firstimage are not of a background color but which are aberrations to beconsidered part of the background; and wherein creating the second maskincludes utilizing the first mask to identify a presence of aberrationsin the second image.
 2. The method of claim 1 further comprising:analyzing attributes of the second image to determine whether the firstimage has attributes similar to the second image; and wherein applyingthe first mask occurs in response to detecting that the first image hasattributes similar to the second image.
 3. The method of claim 2 furthercomprising: deriving parameter information based on processing of thefirst image; deriving parameter information based on processing of thesecond image; and wherein detecting that the first image is similar tothe second image includes: comparing the parameter informationassociated with the first image to the parameter information associatedwith the second image; and identifying that the parameter informationassociated with the first image are within a threshold difference. 4.The method of claim 1, wherein creating the first mask includes: for afirst set of regions of the first image that fall within a backgroundcolor range, marking the first set of regions in the mask as being partof the background of the first image; for a second set of regions of thefirst image that include a contiguous grouping of pixels that falloutside the background color range and form an area smaller than athreshold value, marking the second set of regions in the first mask asbeing part of the background of the first image.
 5. A system comprising:a processor; a memory unit; and an interconnect coupling the processorand the memory unit, the processor configured to: analyze attributes ofa first image; based on the analyzing, create a first mask indicatingwhich regions of the first image represent foreground and which regionsof the first image represent background; and based on an analysis of thefirst mask with respect to a second image, create a second maskindicating which regions of the second image represent foreground andwhich regions of the second image represent background; and wherein theprocessor is further configured to create the first mask includes theprocessor configured to indicate which regions of the first image arenot of a background color but which are aberrations to be consideredpart of the background; and wherein the processor is further configuredto create the second mask includes the processor configured to utilizethe first mask to identify a presence of aberrations in the secondimage.
 6. The system of claim 5 wherein the processor is furtherconfigured to: analyze attributes of the second image to determinewhether the first image has attributes similar to the second image; andwherein the processor is further configured to apply the first maskoccurs in response to detecting that the first image has attributessimilar to the second image.
 7. The system of claim 6 wherein theprocessor is further configured to: derive parameter information basedon processing of the first image; derive parameter information based onprocessing of the second image; and wherein the processor is furtherconfigured to detect that the first image is similar to the second imageincludes: the processor configured to compare the parameter informationassociated with the first image to the parameter information associatedwith the second image; and the processor configured to identify that theparameter information associated with the first image are within athreshold difference.
 8. A system comprising: processor; a memory unit;and an interconnect coupling the processor and the memory unit, theprocessor configured to: analyze attributes of a first image; based onthe analyzing, create a first mask indicating which regions of the firstimage represent foreground and which regions of the first imagerepresent background; and based on an analysis of the first mask withrespect to a second image, create a second mask indicating which regionsof the second image represent foreground and which regions of the secondimage represent background; and wherein the processor is furtherconfigured to create the first mask includes: the processor configuredto, for a first set of regions of the first image that fall within abackground color range, mark the first set of regions in the mask asbeing part of the background of the first image; the processorconfigured to, for a second set of regions of the first image thatinclude a contiguous grouping of pixels that fall outside the backgroundcolor range and form an area smaller than a threshold value, mark thesecond set of regions in the first mask as being part of the backgroundof the first image.
 9. The system of claim 8 wherein the processor isfurther configured to: analyze attributes of the second image todetermine whether the first image has attributes similar to the secondimage; and wherein the processor is configured to apply the first maskoccurs in response to detecting that the first image has attributessimilar to the second image.
 10. The system of claim 9 wherein theprocessor is further configured to: derive parameter information basedon processing of the first image; derive parameter information based onprocessing of the second image; and wherein the processor is furtherconfigured to detect that the first image is similar to the second imageincludes: the processor configured to compare the parameter informationassociated with the first image to the parameter information associatedwith the second image; and the processor configured to identify that theparameter information associated with the first image are within athreshold difference.